Slicing Programs with Arbitrary Control-flow
نویسندگان
چکیده
Program slicing is a program transformation that is useful in program debugging, program maintenance, and other applications that involve understanding program behavior. Given a program point p and a set of variables V, the goal of slicing is to create a projection of the program (by eliminating some statements), such that the projection and the original program compute the same values for all variables in V at point p. This paper addresses the problem of slicing programs with arbitrary control flow. Previous slicing algorithms do not always form semantically correct program projections when applied to such programs. We present an algorithm for slicing programs with complex control flow and a proof of its correctness. Our algorithm works for programs with completely arbitrary control flow, including irreducible control flow.
منابع مشابه
Static Interprocedural Slicing of Shared Memory Parallel Programs
Software tools for program debugging, software testing, software maintenance, and program understanding have all effectively utilized static program slicing techniques. In this paper, we present an approach to extend this capability to explicitly parallel shared memory programs written using the OpenMP standard. In particular, interprocedural static program slicing of OpenMP programs is enabled...
متن کاملData-flow and Control-flow Analysis of AspectJ Software for Program Slicing
We propose an approach for program slicing of AspectJ software, based on a novel data-flow and control-flow program representation. The representation is built at the source-code level and, unlike previous work, captures the semantic intricacies of various pointcut designators, multiple advices per joint point, dynamic advices, exceptions, and general flow of data to, from, and between advices....
متن کاملUsing JOANA for Information Flow Control in Java Programs - A Practical Guide
We present the JOANA (Java Object-sensitive ANAlysis) framework for information flow control (IFC) of Java programs. JOANA can analyze a given Java program and guarantee the absence of security leaks, e.g. that a online banking application does not send sensitive information to third parties. It applies a wide range of program analysis techniques such as dependence graph computation, slicing an...
متن کاملTransfinite semantics in program slicing
This paper studies mathematically some special kinds of transfinite trace semantics and investigates program slicing w.r.t. these semantics. Several general facts about slicing, which hold for a wide class of programming languages and their transfinite semantics, are proven. The principal part of the work is done on control flow graphs keeping the treatment abstracted from any concrete programm...
متن کاملClauser: Clause Slicing Tool for C Programs
The Clause slicing technique is a static slicing technique. The clause slice criterion is the clause, which is the smallest part of the code line, with the clause number. In this paper, we introduce the “Clauser,” which is a new clause slicing tool for C programs. The Clauser is a slicing tool that divides the program code lines into clauses, depending on certain rules, and then it slices the c...
متن کامل